New customer services are continually being developed by the telephone operating companies in order to meet the needs of the telephone customers. As more services become available, the operating companies or users seek to develop an even broader range of telephone services. Conventionally, however, each new telephone service has to undergo lengthy and expensive design and testing before that telephone service is actually marketed because the service is defined by program sequences within very large packages of program sequences which resided in complex intelligent digital switches. It is often desirable to offer for test marketing various new telephone services, but before any new telephone service could be test marketed it still requires the lengthy and expensive design and test. Accordingly, the prior art did not provide a fast and simple way of designing and testing new telephone services to be made available to the telephone customers.
In the prior art it was known to implement telephone services on large intelligent switching systems using Stored Program Control (SPC) switches such as the Northern Telecom DMS-100 family communications switching systems. These are high capacity digital switches with a large number of microprocessor controlled peripheral modules, running under the control of a central control computer. The software required for such a machine is extensive. For example, "The Software Architecture for a Large Telephone Switch" by Brian K. Penny and J. W. J. Williams, IEEE Transactions on Communications, Vol. Com-30, No. 6, June 1982, teaches a DMS-100 family switching system which requires central control software of up to 500,000 lines of high level language program sequence source code and peripheral modules of up to 128K bytes of memory.
The software required for call processing in telephone switching systems is very large because of the large number of pieces of equipment switched by a large switching system as well as the great diversity of connected telephony equipment and the many possible types of services required. A conventional way of providing this software is the use of driver software, using conditional statements, to select executive procedures which perform the required operations in the required sequence. This type of software package is commonly known as a generic.
With this approach, it is necessary to recompile or at least to relink large parts of the generic program sequences if new procedures or new services are added to the system. Additionally, recompiling and relinking of the generic is usually required if old services are modified. Furthermore, these large software packages often have to be tailored and patched for individual installations where they are used.
For reliability, many telephone switching systems are "hard coded" to avoid memory volatility. In hard coding, electronic circuitry represent the compiled program sequences of the generic within the switch. These circuits are often replaced in their entirety to update a system to a more recent version of the software. Thus updating the program sequences of a telephone switch with new services is a very difficult and a very expensive procedure because a large amount of hard coded circuitry has to be replaced.
The trialing of new telephone services prior to their implementation in the field has also been a very difficult process. Because the program sequences defining the new telephone service or feature are part of the switching system software, trialing software for new or updated telephone services requires working with the very large packages of telephone switching system program sequences. This overall process results in very long delays in getting new services tested and deployed, sometimes as long as several years. New technology in the field of telephony is emerging so rapidly that development and deployment delays measured in terms of years are unacceptable.
An attempt to solve this problem is a digital telephone switch implementation which interfaces to a local switch of the overall telephone network and conducts bidirectional communication with an external processor. The external processor executes conventional program sequences which specify a telephone service being trialed. The processor is informed by the digital switch that some event has occurred, such as the seizure of a trunk, and the switch receives commands from the external processor instructing it how to respond to the event in accordance with the service being trialed. The commands are specified according to the conventional program sequences within the external processor.
Thus a service could be trialed on the external processor system by designing and modifying service program sequences on the external processor without modification of a generic. This external processor also permits changing or adding features to a telephone service prior to or during a trial. However the services of the overall telephone network which are not being trialed are still implemented in a conventional manner separate from the external processor. Since the commands defining the features are contained in the program sequences executed by the external processor, changing or adding features on this system still requires rewriting of program sequences. The rewriting of the program sequences is a highly skilled time consuming task. Furthermore a limited number of new services could be trialed on this system and previously defined services which are controlled by the network rather than this trialing system, could not be modified as they interacted with the trialed service.
PCT International Application Number PCT/U.S. 84/01610 teaches a method for defining an individual service for an individual customer. A telephone service is performed by a customer program which is defined by the customer using conventional program sequences and executed on the customer's host computer external to the telephone network when a call is processed. This method permits configuration of a new individual customer service without modification to the telephone network switching system software. However, this method can not implement a new service on a network wide basis because the service is specific to the customer which designed it and an individual host computer external to the telephone system is required by every customer which uses the service. Furthermore, designing a service still requires writing program sequences to define the service and modifications to the service still require changes to the program sequences.